Non-volatile memories are commonly used in several applications when the data stored in the memory need to be preserved even when the power supply is off. Within the class of non-volatile memories, the electrically programmable (and erasable) memories, such as flash memories, have become very popular in applications in which the data to be stored are not immutable (as it might be, e.g., the case of a consolidated code for a microprocessor), being instead necessary from time to time to store new data, or to update the data already stored.
The non-volatile memories include a plurality of memory cells; a typical non-volatile memory cell consists of a MOS transistor whose threshold voltage is varied for storing the desired information, for example by injecting charges into a floating gate thereof. Particularly, different program levels of the memory cells correspond to respective threshold voltage value ranges, in turn associated with respective logic values. Accordingly, the memory cells in determined biasing states are conductive or not conductive depending on the information stored therein.
Typically, a flash memory includes a matrix of memory cells, and, depending on the way the memory cells in the matrix are interconnected, two classes of flash memories can be identified: those having a so-called NOR architecture, or NOR flash memories, and those having a so-called NAND architecture, shortly referred to as NAND flash memories. Roughly speaking, in both the architectures each matrix row is connected to a respective word line, but while in a NOR architecture the memory cells of a same matrix column are connected in parallel to a same bit line, in a NAND architecture groups of memory cells of a same matrix column are serially interconnected one to another so as to form respective strings, which strings are then connected in parallel to each other to a same bit line.
In order to perform a read operation on, for example, a NAND memory, a word line, to which a selected memory cell belongs, is biased to a given read voltage, typically intermediate between a first threshold voltage value, associated with a first logic value, and a second threshold voltage value, associated with a second logic value, respectively. The remaining word lines, controlling the other memory cells of the same string, are all kept at a voltage sufficiently high to ensure that these memory cells are turned on irrespective of their program level. In this way, the selected memory cell is conductive only when biased at a read voltage higher than the threshold voltage thereof. Accordingly, the read voltage values are exploited for discriminating the program levels of the memory cells in reading conditions.
Typically, the read voltages are supplied by a voltage generator included in the memory. For optimizing read voltage margins between two adjacent program levels, the voltage generator should supply read voltages approximately located halfway between the threshold voltage values corresponding to the two adjacent program levels.
Voltage generators known in the art are implemented and dimensioned in such a way as to supply predetermined read voltages, whose values depend on the program levels associated with the information stored in the flash memory.
The ever increasing need for high density memory sizes and the industrial need of a reduction of the cost for storage have led to the development of techniques in which a single memory cell is adapted to store more than a single bit. In particular, in order to store more than one bit in the same memory cell, more than two different threshold voltage ranges, or program levels, for the cells need to be defined: for this reason, these memory cells are referred to as multilevel.
The constant trend for reduced feature size manufacturing processes causes a reduction of the read margins, which, particularly, become smaller and smaller (also of few hundreds of millivolts) in a multilevel memory.
Furthermore, it has to be considered that the threshold voltages of the memory cells are sensitive to temperature variations. In particular, the threshold voltages tend to decrease with an increase of temperature, and vice versa; in particular, the threshold voltage varies of an amount of the order of millivolts for a degree centigrade. Accordingly, the small read margins of a multilevel memory are further reduced because of temperature variations, then increasing a probability of an incorrect reading of the memory cells.